12单选假定整数加法指令、整数减法指令和移位指令所需时钟周期都为1,整数乘法指令所需时钟周期为8。若x为整型变量,为了使计算36*x所用时钟周期数最少,编译器应选用的最佳指令序列为()。
A.4条左移指令和3条减法指令
B.1条乘法指令
C.3条左移指令和两条加法指令
D.两条左移指令和1条加法指令
13单选某C语言程序中对数组变量b的声明为“shortb[10][5];”,sum为int型,有一条for语句如下:for(i=0;i<10,i++)for(j=0;j<5;j++)sum+=b[i][j];假设执行到“sum+=b[i][j];”时,sum的值在EAX中,b[i][0]所在的地址在ECX中,j在EDI中,则“sum+=b[i][j];”所对应的指令或指令序列(AT&T格式)可以是()。
A.movswl0(%ecx,%edi,2),%edxaddl%edx,%eax
B.addl0(%edi,%ecx,2),%eax
C.addl0(%ecx,%edi,2),%eax
D.movzwl0(%edi,%ecx,2),%edxaddl%edx,%eax
14单选设SignExt[x]表示对x符号扩展,ZeroExt[x]表示对x零扩展。IA-32中指令“movzwl%cx,-16(%ebp)”的功能是()。
A.R[cx]←ZeroExt[M[R[ebp]-16]]
B.M[R[ebp]-16]←SignExt[R[cx]]
C.R[cx]←SignExt[M[R[ebp]-16]]
D.M[R[ebp]-16]←ZeroExt[R[cx]]
15单选假设R[ax]=FFD0H,R[bx]=7FE5H,执行指令“subw%bx,%ax”后,寄存器的内容和各标志的变化为()。
A.R[bx]=7FEBH,OF=0,SF=1,CF=0,ZF=0
B.R[ax]=7FEBH,OF=1,SF=0,CF=0,ZF=0
C.R[bx]=7FEBH,OF=1,SF=1,CF=1,ZF=0
D.R[ax]=7FEBH,OF=0,SF=0,CF=1,ZF=0
16单选以下关于各类控制转移指令的叙述中,错误的是()。
A.条件转移指令(Jcc)的判断条件可用于整数之间和浮点数之间的大小比较
B.无条件转移指令(JMP)直接将转移目标地址送到EIP寄存器中
C.条件转移指令(Jcc)将根据EFLAGS寄存器中的标志信息进行条件判断
D.调用指令(CALL)和返回指令(RET)都是特殊的无条件转移指令
计算机系统基础(一):程序的表示、转换与链接
南京大学
军职在线答案
大学网课